home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs07.d81
/
slice.prg
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
2KB
|
62 lines
10 POKE56,160:CLR:Z$=CHR$(.):PRINT"[147]"
11 PRINT"ENTER DISK DRIVE DEVICE NUMBER."
12 PRINT"(ENTER 0 TO EXIT.)"
13 PRINT" 8[145]":INPUTD:IFD=0THENEND
14 IFD-8AND252THENPRINT"ILLEGAL DEVICE NUMBER":GOTO11
15 POKE2,35:POKE184,8:POKE185,8:POKE186,D
16 POKE183,1:POKE187,2:POKE188,.:SYS65472
17 IFPEEK(783)AND1THENCLOSE8:PRINT"[147]?DEVICE";D;"NOT PRESENT":GOTO11
18 CLOSE8:OPEN15,D,15
19 PRINT"ENTER NAME OF FILE TO BE SPLIT."
20 PRINT:INPUTF1$
21 OPEN8,D,8,F1$:GOSUB200:CLOSE8:IFA>19THEN19
22 GOSUB500:T1=18:P1=P:S1=S
23 OPEN8,D,8,"#"
24 PRINT#15,"U1";8;0;T1;S1
25 PRINT#15,"B-P";8;P1+1
26 GET#8,T$:GET#8,S$
27 TT=ASC(T$+Z$):SS=ASC(S$+Z$)
28 PRINT#15,"B-P";8;P1+28
29 GET#8,A$:B=ASC(A$+Z$):GET#8,A$:B=B+256*ASC(A$+Z$)
30 PRINT"NUMBER OF BLOCKS IN FILE =";B
31 PRINT"ENTER NUMBER OF BLOCKS FOR FIRST PART."
32 PRINT:INPUTN:IFN=>BTHENPRINT"TOO MANY":GOTO30
33 IFN<1THENPRINT"TOO FEW":GOTO30
35 NN=N:PRINT#15,"B-P";8;P+28
36 H=(N/256):L=NAND255
37 PRINT#8,CHR$(L);CHR$(H);
38 PRINT#15,"U2";8;0;T1;S1:CLOSE8
39 PRINT"FIRST PART WILL HAVE SAME FILENAME."
40 PRINT"ENTER FILENAME FOR SECOND PART."
42 PRINT:INPUTF2$
45 OPEN8,D,8,F2$+",W":GOSUB200:CLOSE8:IFA>19THEN40
47 GOSUB300:T2=18:P2=P:S2=S
50 OPEN8,D,8,"#"
62 PRINT"[147]ONE MOMENT PLEASE..."
65 PRINT#15,"U1";8;0;TT;SS
67 GET#8,T$:GET#8,S$
70 T=ASC(T$+Z$):S=ASC(S$+Z$)
72 N=N-1:IFNTHENTT=T:SS=S:GOTO65
75 PRINT#15,"U1";8;0;TT;SS
77 PRINT#8,CHR$(.);CHR$(255);
80 PRINT#15,"U2";8;0;TT;SS
82 PRINT#15,"S0:";F2$
85 PRINT#15,"U1";8;0;T2;S2
87 PRINT#15,"B-P";8;P2
90 PRINT#8,CHR$(129);CHR$(T);CHR$(S);
92 PRINT#15,"B-P";8;P2+28
95 L=B-NN:H=INT(L/256):L=LAND255
96 PRINT#8,CHR$(L);CHR$(H);
97 PRINT#15,"U2";8;0;T2;S2
100 CLOSE8:CLOSE15:END
200 INPUT#15,A,B$,C,E
210 IFA>19THENPRINT:PRINTA:PRINTB$:PRINTC,E
220 RETURN
300 PRINT#15,"M-R";CHR$(145);CHR$(2);CHR$(2)
310 GET#15,A$:S=ASC(A$+Z$):GET#15,A$:P=ASC(A$+Z$)
320 RETURN
500 PRINT#15,"M-R";CHR$(144);CHR$(2);CHR$(5)
510 GET#15,A$:S=ASC(A$+Z$):GET#15,A$:GET#15,A$
520 GET#15,A$:GET#15,A$:P=ASC(A$+Z$)
530 RETURN